#ifndef LIVINGENTITY_H
#define LIVINGENTITY_H

#include "Entity.h"

class LivingEntity : public Entity
{
public:
    LivingEntity();
    virtual void tick();
    virtual void updateSprite();
    virtual void onCollide(Entity*);
    virtual void takeHit(int, Entity*);
    virtual void heal(int);
    virtual int timeInvulnerable();
    virtual int getMaxHP();
    bool isAlive();
    Entity* clone();

    virtual LivingEntity* setMaxHP(int);
    virtual LivingEntity* setDamages(int);
protected:
    int hp;
    int invulnerabilityFrames;
};

struct LivingEntityData : public EntityData
{
    int hp;
    int dmg;
};

#endif // LIVINGENTITY_H
